package agg

// 列表存在的盘符

import (
    "fmt"
    "strings"
)

type devol struct {
    D string
    V string
}

/*
 * 获取磁盘信息 mount 命令
 * 回车符分割每一行 循环判断是否 ntfs 格式
 * 记录到数组后 带序号输出
*/
func Ntfsls() {
    var mount string
    var err bool
	if mount, err = Getshell("mount"); err { return }   // 若返回错误则退出
    dv           := []devol{}                           // 初始化 3 个 ntfs 盘符 收费则更大
    arrstr       := strings.Split(mount, "\n")          // 以换行符为切割
    j            := 0
    // 遍历 dev 数组 查找 ntfs
    for _, value := range arrstr {
        if strings.Contains(value, "ntfs") {           // 判断存在该字符串的行local

            // 切割成数组
            ntfs := strings.Split( strings.Split(value, " (")[0], " on " )
            // 输出选择
            fmt.Printf("%d, %s %s %s\n", j, ntfs[0], Complete(ntfs[0]), ntfs[1])
            // 记录
            dv = append(dv, devol{D: ntfs[0], V: ntfs[1]})
            j++
        }
    }

    if j == 0 {
        fmt.Println("没有需要挂载的 NTFS 格式盘")
    }else{
        var str string
        fmt.Printf("请输入需要挂载的盘符序号:")
        fmt.Scanf("%s", &str)
        
        judge := &Judge{ I: j, Str: str}
        if p := judge.Run(); p {
            DevLoad(dv[judge.I].D, dv[judge.I].V)
        }else{
            fmt.Println(judge.Str)
        }
    }
}